package main.com.oaer.dao;

import java.util.List;
import java.util.Map;

import main.com.oaer.model.Purview;

/**
 * 权限 数据访问对象 
 *
 */
public interface PurviewDao {
    
	/**
	 * 添加权限
	 * @param purview  待插入权限对象
	 */
	void add(Purview purview);
	
	/**
	 * 获取所有权限信息
	 * @return  权限对象列表
	 */
	List<Map<String, Object>> findPurviews();
	
	/**
	 * 删除权限
	 * @param purview  待删除权限对象
	 */
	void delete(Purview purview);
	
	/**
	 * 更新权限
	 * @param purview  待更新权限对象
	 */
	void update(Purview purview);
	
	/**
	 * 根据父权限id获取子节点
	 * @param id  父权限id
	 * @return
	 */
	List<Purview> findChildPurview(Long id);
	
	/**
	 * 根据url获取权限实体
	 * @param url  根据权限的url查找权限 
	 * @return
	 */
	Purview getPurview(String url);
	
	/**
	 * 根据id获取权限实体
	 * @param id  权限id
	 * @return
	 */
	Purview load(Long id);
	
	/**
	 * 根据父id和用户id，获取该用户的所有同级的三级权限
	 * @param purview
	 * @return
	 */
	List<Purview> findSiblingPurview(Long parentId, Long userId);
}
